#include "clientmenu.h"
#include "log.h"
#include "clientlogin.h"

// 客户端登录注册界面
void client_menu_login(int fd)
{
    DEBUG("和服务器连接成功\n");
    while (1)
    {
        printf("-------------------------\n");
        printf("   登录        注册      \n");
        printf("1.用户登录   2.用户注册   \n");
        printf("3.商家登录   4.商家注册   \n");
        printf("5. 密码找回  6.退出        \n");
        char choice;
        scanf(" %c", &choice);
        while (getchar() != '\n')
            ;
        switch (choice)
        {
        case '1':
            // 登录 填充登录消息 并发送 用户
            client_login(fd);
            break;
        case '2':
            // 注册 用户
            client_regist(fd);
            break;
        case '3':
            // 登录 填充登录消息 并发送 商家
            menchant_login(fd);
            break;
        case '4':
            // 注册 商家
            menchant_register(fd);
            break;
        case '5':
            //密码找回 
            client_find_password(fd);
            break;
        case '6':
            exit(0);
            break;
        default:
            break;
        }
    }
    
}

// 客户端界面
void client_menu(MSG msg, int fd);

// 发送
bool SendsigtoServe(MSG msg, int fd)
{
    int ret = send(fd, &msg, sizeof(msg), 0);
    if (ret == 0)
    {
        WARN("服务器已经关闭,发送失败");
        return false;
    }
    else if (ret == -1)
    {
        ERROR("客户端发送失败");
        return false;
    }
    else
    {
        DEBUG("客户端发送成功");
        return true;
    }
}

// 接收
MSG RecvsigtoServe(MSG msg, int fd)
{
    int ret = recv(fd, &msg, sizeof(msg), 0);
    if (ret <= 0)
    {
        if (ret == 0) {
            printf("连接已关闭。\n");
        } else {
            perror("接收消息失败");
        }
        WARN("服务器已经关闭,接收失败,客户端异常（已经强制下线）");
        exit(-1);
    }
    else
    {
        DEBUG("客户端接收成功");
        return msg;
    }
}